Skip to content

Latest commit

 

History

History
167 lines (147 loc) · 10.4 KB

README_EN.md

File metadata and controls

167 lines (147 loc) · 10.4 KB

image

So,global:Backend management system based on Amazon cloud service

GitHub last commit

Chinese Readme.mdUsageDashboard IntroductionAWS ServicesArchitecture designDeployment GuideFeaturesContribution

💻 Usage

Do you want to publish once and sell globally? Do you want to accurately deliver product information to customers in different languages? Do you want to change currency units with a single click and realize real-time exchange rates? The "So,global" backend manager can fulfill all your needs. Click: "So,global" for a quick experience.

🚀 Dashboard Introduction

"So,global" has a simple interface, provides high-quality services in a user-friendly way, and minimizes user learning costs.

Registration/Login interface

  • "So, global" registration and login use email verification.
  • Users can select the language in the upper right corner to adjust the system language.
  • When registering, users are required to select a country to facilitate subsequent language settings for the order management system.

image

Backend management interface

After logging in to "So, global", the backend management interface will appear.

  • The left side is the product information, and the right side is the order information of the product. Below are the functional components.
  • After the user clicks on the product on the left, the corresponding order will appear on the right, and corresponding operations can be performed. Click to view the Operation Guide.

📃 AWS Services

  • AWS Elastic Beanstalk: Create a Java environment and deploy jar package back-end services with one click.
  • AWS Lambda:
    • Perform real-time exchange rate calculations.
    • Works with Amazon Translate to provide high-quality translation results.
  • AWS S3:
    • Access user product information as a picture bed.
    • Store the configuration files and historical versions required by Elastic Beanstalk.
    • Store page frame translations.
  • AWS IAM: Resource access management.
  • AWS EC2: stores web front-end services.
  • AWS Amplify API: enables JavaScript to call AWS Lambda functions.
  • AWS Cognito: Manage identity pools and grant front-end permissions.

🏗️ Architecture design

Cloud Service ArchitectureBackend ArchitectureDatabase Schema

☁️ Cloud service architecture

image

🛎️ Backend architecture

image

💿 Database architecture

image

📦 Deployment Guide

Cloud deployment

  • Grant Lambda permission to operate the corresponding AWS S3 Bucket library.
  • Grant Lambda permission to call AWS Translate.
  • Compile the back-end code into a jar package
  • Open AWS Elastic beanstalk, create a Java 8 environment, and upload the corresponding jar package. If the environment is detected as green, it means it is in good condition and can be used.
❗ When using AWS Elastic beanstalk to create an environment configuration, you need to add the environment variable PORT and set it to 5000. The Spring Boot default port is 8080, while AWS automatically detects the port as 5000.

🔨 Features

Implement features

Objects Operations
Users Login
Register
Products Add products information
Update products information
Delete products information
Search products
Release a product in multiple countries with one click
Remove a product in multiple regions with one click
Remove multiple products from a certain region with one click
Orders Retrieve all orders for a certain product
Retrieve all orders of a certain customer
Search based on order amount
Obtain the three countries with the best-selling products within a certain period of time
Languages Translation
Price Real-time exchange rate conversion

Highlights

🌟 Exchange rate crawling: When performing real-time exchange rate conversion, we found that websites that can dynamically convert exchange rates have anti-crawler mechanisms. In the end, we searched Baidu for responses each time and crawled the results returned based on the knowledge graph
🌟 Asynchronous translation of more stable information (such as frame display) to improve response efficiency

Improve

  • Use AWS Gateway instead of Spring Boot to create a true Serverless server structure
  • Translation of important information should also be handled asynchronously (Java cannot be granted the authority to write to S3, resulting in this feature not being implemented)
The difficulty is not realized

Tax calculation:
After reading relevant information, I found that taxes and fees on various commodities in various countries They are all different. In addition to the exporting country and importing country, the tax query on the National Import and Export Center also needs to enter the complete product number

Postage calculation:
Postage calculation requires postal code and other information. Initially I wanted to crawl a website that wanted to crawl FedEx and other cross-border express delivery services, but the operating logic of the website made it impossible to crawl

Contribution list

🤸‍♂️ Zhipeng Zhao (Home/Email)): Cloud service writing (translation , exchange rate), document writing, service cloud
🦸‍♀️ Bin Wang (Homepage/Email)): Java backend, front-end and back-end interface docking, database design
🙋‍♂️ Yuzhou Zhang (homepage/email): Vue front-end development, front-end and back-end interface docking